1. Field of the Invention
The present invention relates to a data interpolating system interpolation a value between discrete data such as sounds and images. In this specification, it is assumed that a case where function values have finite values except zero in a local region and becomes zero in regions different from the region is called a xe2x80x9clocal support.xe2x80x9d
2. Description of the Prior Art
Conventionally, a method of performing data interpolation by using a sampling function is known as a data interpolation for obtaining a value between sample values that are given beforehand.
FIG. 5 is an explanatory diagram of a sampling function called a sinc function conventionally known. This sinc function is obtained when a Dirac delta function is inverse-Fourier-transformed, and becomes one only at a sample point, where t=0, and zero at all other sample points.
FIG. 6 is an explanatory diagram of data interpolation by using the sampling function shown in FIG. 5.
By the way, in case where a conventional data interpolation system by using the sinc function as a sampling function, it is theoretically possible to obtain an accurate interpolation value by adding values of respective sampling functions, corresponding to sample points from xe2x88x92∞ to +∞, with convolution. Nevertheless, when the above-described interpolation operation is actually attempted with one of various types of processors, a truncation error arises due to the truncation of processing within a finite interval. Therefore, this system has a problem that sufficient accuracy cannot be obtained if the interpolation operation is performed with a small number of sample values. For example, so as to obtain 96 dB of dynamic range of S/N ratio in a sample signal, 1024 sample points should be considered, and hence, in case of using sample points less than the quantity, it is not possible to obtain sufficient sound quality. Furthermore, it is similar in consideration of image data, it is not possible to obtain sufficient image quality in case of performing interpolation processing with a small number of sample points, and the operation quantity becomes huge in case of increasing sample points, which become objects of calculation, on the contrary. Therefore, this is not practical.
The present invention is created in consideration of these points, and an object of the present invention is to provide a data interpolation system that can reduce operation quantity and has a small error.
A data interpolation system of the present invention performs interpolation operation between plural of discrete data by using a sampling function that can be differentiated and has values of a local support. Therefore, since it is good enough only to make discrete data, included in this local support interval, be objects of the interpolation operation, the operation quantity is few, and it is possible to obtain good interpolation accuracy because of no truncation error arising.
In particular, it is preferable to use a function of the local support, which can be differentiated only once over the whole range, as the sampling function described above. It is considered that it is necessary that various signals existing in the natural world have differentiability because the signals change smoothly. Nevertheless, it is considered that it is not necessary that the differentiability is not always infinite, and that it is possible to sufficiently approximate natural phenomena so long as the signals can be differentiated only once.
In this manner, although there are many advantages by using a sampling function of the local support that can be differentiated finite times, conventionally, it was considered that a sampling function fulfilling these conditions did not exist. Nevertheless, by the present inventor""s research, a function fulfilling the conditions described above is found.
Concretely, letting a third order B spline function be F(t), a sampling function H(t) to which the present invention is applied can be obtained by equation, xe2x88x92F(t+xc2xd)/4+F(t)xe2x88x92F(txe2x88x92xc2xd)/4. This sampling function H(t) is a function of a local support that can be differentiated only once in the whole region and whose value converges to zero at t=xc2x12, and fulfills two conditions described above. By performing the interpolation between discrete data by using such a function H(t), it is possible to perform the interpolation operation whose operation quantity is few and whose accuracy is high. Therefore, in case of using, discrete data that are obtained by sampling sounds or images for example, it becomes possible to perform real-time processing whose accuracy is high.
In addition, the three order B spline function F(t) can be expressed as (4t2+12t+9)/4 in xe2x88x92{fraction (3/2)}xe2x89xa6t less than xe2x88x92xc2xd, xe2x88x922t2+{fraction (3/2)} in xe2x88x92xc2xdxe2x89xa6t less than xc2xd, and (4t2xe2x88x9212t+9)/4 in xc2xdxe2x89xa6txe2x89xa6{fraction (3/2)}. Therefore, it is possible to perform calculation of the sampling function, described above, by such a piecewise polynomial expressed in quadric functions. Hence, it is possible to reduce the operation quantity due to comparatively simple operation contents.
In addition, it is possible to express the sampling function in quadric piecewise polynominals without expressing the sampling function by using the B spline function as described above. Concretely, it is possible to perform the above-described interpolation processing by using a sampling function defined in (xe2x88x92t2xe2x88x924t xe2x88x924)/4 in xe2x88x922xe2x89xa6t less than xe2x88x92{fraction (3/2)}, (3t2+8t+5)/4 in xe2x88x92{fraction (3/2)}xe2x89xa6t less than xe2x88x921, (5t2+12t+7)/4 in xe2x88x921xe2x89xa6t less than xe2x88x92xc2xd, (xe2x88x927t2+4)/4 in xe2x88x92xc2xdxe2x89xa6t less than xc2xd, (5t2xe2x88x9212t+7)/4 in xc2xdxe2x89xa6t  less than 1, (3t2xe2x88x928t+5)/4 in 1xe2x89xa6t less than {fraction (3/2)}, and (xe2x88x92t2+4txe2x88x924)/4 in ⅔xe2x89xa6txe2x89xa62.
In addition, the data interpolation system of the present invention includes discrete data extracting unit, sampling function operating unit, and convolution operating unit so as to perform the above-described interpolation operation. The discrete data extracting unit extracts a plurality of discrete data, which exists so as to sandwich a data interpolating position, and which is an object of interpolation operation. The sampling function operating unit calculates a value of the sampling function H(t) for each of a plurality of discrete data extracted in this manner, letting distance between the data interpolating position and discrete data be t. Furthermore, the convolution operating unit performs convolution operation to a plurality of values of the sampling function that is obtained by the calculation. In this manner, just by calculating values of the sampling function corresponding to a plurality of discrete data extracted and performed the convolution operation to this result, it is possible to perform data interpolation between discrete values and to drastically reduce processing volume necessary for interpolation processing. Furthermore, since no truncation error arises by using a sampling function of a local support as described above, it is possible to increase processing accuracy.